<!DOCTYPE html>
<html lang="en-US" dir="ltr">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>4.git的基本使用 | Electrolux_blog</title>
    <meta name="description" content="hello world">
    <link rel="preload stylesheet" href="/front-base-know-blog/assets/style.4f9339b2.css" as="style">
    <script type="module" src="/front-base-know-blog/assets/app.b7849f6a.js"></script>
    <link rel="preload" href="/front-base-know-blog/assets/inter-roman-latin.2ed14f66.woff2" as="font" type="font/woff2" crossorigin="">
  <link rel="modulepreload" href="/front-base-know-blog/assets/chunks/framework.408c4d71.js">
  <link rel="modulepreload" href="/front-base-know-blog/assets/chunks/theme.bf7db135.js">
  <link rel="modulepreload" href="/front-base-know-blog/assets/supper_工具基础_4git的基本使用.md.c5629b74.lean.js">
  <link rel="icon" type="image/svg+xml" href="https://cdn.jsdelivr.net/npm/electroluxasset@1.0.8/image/svg/book.svg">
  <script id="check-dark-light">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
  <script>import("/front-base-know-blog/_pagefind/pagefind.js").then(n=>{window.__pagefind__=n}).catch(()=>{console.log("not load /_pagefind/pagefind.js")});</script>
  </head>
  <body><!--v-if--><!--teleport anchor-->
    <div id="app"><div class="Layout" data-v-f0b011de><!--[--><!--]--><!--[--><span tabindex="-1" data-v-c8616af1></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-c8616af1> Skip to content </a><!--]--><!----><header class="VPNav" data-v-f0b011de data-v-7e5bc4a5><div class="VPNavBar has-sidebar" data-v-7e5bc4a5 data-v-7c10cd25><div class="container" data-v-7c10cd25><div class="title" data-v-7c10cd25><div class="VPNavBarTitle has-sidebar" data-v-7c10cd25 data-v-4d981103><a class="title" href="/front-base-know-blog/" data-v-4d981103><!--[--><!--]--><!--[--><img class="VPImage logo" src="https://cdn.jsdelivr.net/npm/electroluxasset@1.0.8/image/svg/book.svg" alt data-v-6db2186b><!--]--><!--[-->Electrolux_blog<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-7c10cd25><div class="curtain" data-v-7c10cd25></div><div class="content-body" data-v-7c10cd25><!--[--><!--]--><div class="blog-search search" data-pagefind-ignore="all" data-v-7c10cd25 style="--dba016e0:1;" data-v-e09e7552><div class="nav-search-btn-wait" data-v-e09e7552><svg width="14" height="14" viewBox="0 0 20 20" data-v-e09e7552><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" data-v-e09e7552></path></svg><span class="search-tip" data-v-e09e7552>Search</span><span class="metaKey" data-v-e09e7552> K </span></div><!--teleport start--><!--teleport end--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-7c10cd25 data-v-7f418b0f><span id="main-nav-aria-label" class="visually-hidden" data-v-7f418b0f>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/front-base-know-blog/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->首页<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/front-base-know-blog/know/know/1html" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->前端基础<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/front-base-know-blog/supper/supper/1%E4%BB%A3%E7%A0%81%E4%BC%98%E5%8C%96" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->前端工程化<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/front-base-know-blog/python/flask" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Python<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/front-base-know-blog/java/java" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Java<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/front-base-know-blog/project/javadump%E5%88%86%E6%9E%90" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->项目<!--]--><!----></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-7c10cd25 data-v-f6a63727><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-f6a63727 data-v-87de0873 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-87de0873><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-87de0873><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-7c10cd25 data-v-0394ad82 data-v-d7a53887><!--[--><a class="VPSocialLink" href="https://gitee.com/Electrolux" aria-label="github" target="_blank" rel="noopener" data-v-d7a53887 data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-7c10cd25 data-v-40855f84 data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-764effdf><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-764effdf><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><!----><!--[--><!--[--><!----><div class="group" data-v-40855f84><div class="item appearance" data-v-40855f84><p class="label" data-v-40855f84>Appearance</p><div class="appearance-action" data-v-40855f84><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-40855f84 data-v-87de0873 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-87de0873><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-87de0873><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div></div></div><div class="group" data-v-40855f84><div class="item social-links" data-v-40855f84><div class="VPSocialLinks social-links-list" data-v-40855f84 data-v-d7a53887><!--[--><a class="VPSocialLink" href="https://gitee.com/Electrolux" aria-label="github" target="_blank" rel="noopener" data-v-d7a53887 data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-7c10cd25 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><!----></header><div class="VPLocalNav" data-v-f0b011de data-v-392e1bf8><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-392e1bf8><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="menu-icon" data-v-392e1bf8><path d="M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"></path><path d="M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"></path><path d="M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"></path><path d="M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"></path></svg><span class="menu-text" data-v-392e1bf8>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-392e1bf8 data-v-079b16a8><button data-v-079b16a8>Return to top</button><!----></div></div><aside class="VPSidebar" data-v-f0b011de data-v-af16598e><div class="curtain" data-v-af16598e></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-af16598e><span class="visually-hidden" id="sidebar-aria-label" data-v-af16598e> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="group" data-v-af16598e><section class="VPSidebarItem level-0 collapsible" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>代码高级</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-c4656e6d><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="caret-icon" data-v-c4656e6d><path d="M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"></path></svg></div></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/supper/1%E4%BB%A3%E7%A0%81%E4%BC%98%E5%8C%96" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>代码优化 | 设计模式</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/supper/2%E5%AE%9E%E7%94%A8%E7%AE%97%E6%B3%95" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>设计模式与js</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/supper/3%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>性能优化</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/supper/4UI%E8%AE%BE%E8%AE%A1" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>UI设计</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-af16598e><section class="VPSidebarItem level-0 collapsible" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>工程化</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-c4656e6d><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="caret-icon" data-v-c4656e6d><path d="M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"></path></svg></div></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%B7%A5%E7%A8%8B%E5%8C%96/1%E5%B7%A5%E7%A8%8B%E5%8C%96%E5%9F%BA%E7%A1%80" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>工程化基础</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%B7%A5%E7%A8%8B%E5%8C%96/2webpack%E7%9A%84%E9%85%8D%E7%BD%AE" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>webpack的配置</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%B7%A5%E7%A8%8B%E5%8C%96/3%E5%85%B3%E4%BA%8E%E4%B8%80%E4%BA%9B%E8%87%AA%E5%8A%A8%E5%8C%96%E8%84%9A%E6%9C%AC" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>自动化脚本</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%B7%A5%E7%A8%8B%E5%8C%96/4docker%20%E9%83%A8%E7%BD%B2%E5%AE%9E%E6%93%8D" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>docker 部署实操</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%B7%A5%E7%A8%8B%E5%8C%96/5%E7%BB%99%E5%8C%85%E6%89%93%E8%A1%A5%E4%B8%81" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>patch-package</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%B7%A5%E7%A8%8B%E5%8C%96/6gitee%E6%B5%81%E6%B0%B4%E7%BA%BF" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>gitee流水线</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-af16598e><section class="VPSidebarItem level-0 collapsible has-active" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>工具基础</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-c4656e6d><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="caret-icon" data-v-c4656e6d><path d="M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"></path></svg></div></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%B7%A5%E5%85%B7%E5%9F%BA%E7%A1%80/1Sourcetree%E7%9A%84%E4%BD%BF%E7%94%A8" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Sourcetree的使用</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%B7%A5%E5%85%B7%E5%9F%BA%E7%A1%80/2%E7%94%A8gitee%E8%BF%9E%E6%8E%A5ssh,linux%E6%9C%8D%E5%8A%A1%E5%99%A8" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>用gitee连接ssh,linux服务器</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%B7%A5%E5%85%B7%E5%9F%BA%E7%A1%80/3github%E5%9B%BE%E5%BA%8A" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>github图床</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link is-active has-active" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%B7%A5%E5%85%B7%E5%9F%BA%E7%A1%80/4git%E7%9A%84%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>git的基本使用</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%B7%A5%E5%85%B7%E5%9F%BA%E7%A1%80/5ps%E5%88%87%E5%9B%BE" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>ps切图</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%B7%A5%E5%85%B7%E5%9F%BA%E7%A1%80/6codepen" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>codepen</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%B7%A5%E5%85%B7%E5%9F%BA%E7%A1%80/7Icon%E5%AE%9E%E6%93%8D" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>icon实操 | svg原理</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%B7%A5%E5%85%B7%E5%9F%BA%E7%A1%80/8GraphQl" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>GraphQl</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%B7%A5%E5%85%B7%E5%9F%BA%E7%A1%80/9%E5%BF%AB%E9%80%9Fmock" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>快速mock</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%B7%A5%E5%85%B7%E5%9F%BA%E7%A1%80/10%E8%84%9A%E6%89%8B%E6%9E%B6" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>脚手架</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%B7%A5%E5%85%B7%E5%9F%BA%E7%A1%80/11figma" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>figma</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%B7%A5%E5%85%B7%E5%9F%BA%E7%A1%80/12nvm" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>nvm</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%B7%A5%E5%85%B7%E5%9F%BA%E7%A1%80/13mac%E7%9A%84%E4%BD%BF%E7%94%A8" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>苹果</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-af16598e><section class="VPSidebarItem level-0 collapsible" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>个人封装</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-c4656e6d><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="caret-icon" data-v-c4656e6d><path d="M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"></path></svg></div></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E4%B8%AA%E4%BA%BA%E5%B0%81%E8%A3%85/1%E4%B8%AA%E4%BA%BA%E5%8F%91%E5%8C%85%E6%A8%A1%E6%9D%BF" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>个人封装</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-af16598e><section class="VPSidebarItem level-0 collapsible" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>前端库</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-c4656e6d><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="caret-icon" data-v-c4656e6d><path d="M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"></path></svg></div></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%89%8D%E7%AB%AF%E5%BA%93/1vueify" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>vueify</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%89%8D%E7%AB%AF%E5%BA%93/2anime.js" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>anime.js</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%89%8D%E7%AB%AF%E5%BA%93/3js-cookie" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>js-cookie</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-af16598e><section class="VPSidebarItem level-0 collapsible" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>功能</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-c4656e6d><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="caret-icon" data-v-c4656e6d><path d="M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"></path></svg></div></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%8A%9F%E8%83%BD/1%E5%B0%8F%E5%8A%9F%E8%83%BD%E6%B1%87%E6%80%BB" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>小功能汇总1</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%8A%9F%E8%83%BD/2%E5%B0%8F%E5%8A%9F%E8%83%BD%E6%B1%87%E6%80%BB" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>小功能汇总2</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%8A%9F%E8%83%BD/3%E5%B0%8F%E5%8A%9F%E8%83%BD%E6%B1%87%E6%80%BB" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>小功能汇总3</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%8A%9F%E8%83%BD/4ffmpeg-rmtp%E7%9B%91%E6%8E%A7" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>ffmpeg-rmtp监控</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%8A%9F%E8%83%BD/5%E5%BE%AE%E4%BF%A1%E6%94%AF%E4%BB%98" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>微信支付</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%8A%9F%E8%83%BD/6v-model%E7%BB%84%E4%BB%B6%E5%B0%81%E8%A3%85" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>v-model组件封装</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%8A%9F%E8%83%BD/7%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E5%AE%9E%E6%93%8D" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>深度学习实操</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%8A%9F%E8%83%BD/8%E5%89%8D%E7%AB%AF%E4%B8%8A%E4%BC%A0%E4%B8%8B%E8%BD%BD" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>前端上传下载</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%8A%9F%E8%83%BD/9%E7%9B%91%E6%8E%A7%E5%81%9C%E7%95%99%E6%97%B6%E9%97%B4" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>监控停留时间</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%8A%9F%E8%83%BD/10%E6%95%B0%E6%8D%AE%E5%A4%A7%E5%B1%8F%E8%87%AA%E9%80%82%E5%BA%94" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>数据大屏自适应</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%8A%9F%E8%83%BD/11%E6%8B%96%E6%8B%BD%E5%85%83%E7%B4%A0" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>拖拽元素</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/front-base-know-blog/supper/%E5%8A%9F%E8%83%BD/12vue-element-admin" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>vue-element-admin</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-pagefind-body data-v-f0b011de data-v-a494bd1d><div class="VPDoc has-sidebar has-aside" data-v-a494bd1d data-v-c4b0d3cf><!--[--><!--]--><div class="container" data-v-c4b0d3cf><div class="aside" data-v-c4b0d3cf><div class="aside-curtain" data-v-c4b0d3cf></div><div class="aside-container" data-v-c4b0d3cf><div class="aside-content" data-v-c4b0d3cf><div class="VPDocAside" data-v-c4b0d3cf data-v-3f215769><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" data-v-3f215769 data-v-ff0f39c8><div class="content" data-v-ff0f39c8><div class="outline-marker" data-v-ff0f39c8></div><div class="outline-title" data-v-ff0f39c8>目录</div><nav aria-labelledby="doc-outline-aria-label" data-v-ff0f39c8><span class="visually-hidden" id="doc-outline-aria-label" data-v-ff0f39c8> Table of Contents for current page </span><ul class="root" data-v-ff0f39c8 data-v-9a431c33><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-c4b0d3cf><div class="content-container" data-v-c4b0d3cf><!--[--><!--]--><!----><main class="main" data-v-c4b0d3cf><div style="position:relative;" class="vp-doc _front-base-know-blog_supper_%E5%B7%A5%E5%85%B7%E5%9F%BA%E7%A1%80_4git%E7%9A%84%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8" data-v-c4b0d3cf><div><h1 id="_4-git的基本使用" tabindex="-1">4.git的基本使用 <a class="header-anchor" href="#_4-git的基本使用" aria-label="Permalink to &quot;4.git的基本使用&quot;">​</a></h1><nav class="table-of-contents"><ul><li><a href="#_4-1-基础知识">4.1 基础知识</a><ul><li><a href="#_4-1-1-删除仓库">4.1.1 删除仓库</a></li><li><a href="#_4-1-4-版本控制">4.1.4 版本控制</a></li><li><a href="#_4-1-5-提交树美化">4.1.5 提交树美化</a></li><li><a href="#_4-1-6-合并代码">4.1.6 合并代码</a></li><li><a href="#_4-1-7-标签管理">4.1.7 标签管理</a></li><li><a href="#_4-1-8-合并冲突">4.1.8 合并冲突</a></li><li><a href="#_4-1-9-github-提-issue">4.1.9 github 提 issue</a></li><li><a href="#_4-1-10-cherry-pick">4.1.10 cherry-pick</a></li></ul></li><li><a href="#_4-2-git-hook-husky">4.2 git hook | husky</a><ul><li><a href="#_4-2-1-husky-初始化">4.2.1 husky 初始化</a></li><li><a href="#_4-2-2-添加钩子">4.2.2 添加钩子</a></li></ul></li><li><a href="#_4-9-项目常用">4.9 项目常用</a><ul><li><a href="#_4-9-1-当开发的时候主分支有新东西要合并进来">4.9.1 当开发的时候主分支有新东西要合并进来</a></li><li><a href="#_4-9-2-dev-没有-pull-到最新-然后进行开发">4.9.2 dev 没有 pull 到最新 然后进行开发</a></li></ul></li><li><a href="#_4-10-设置github-的-代理">4.10 设置github 的 代理</a><ul><li><a href="#http">http</a></li><li><a href="#设置ssh代理-终极解决方案">设置ssh代理（终极解决方案）</a></li></ul></li><li><a href="#常见bug">常见bug</a><ul><li><a href="#error-remote-origin-already-exists">error: remote origin already exists</a></li></ul></li><li><a href="#规范">规范</a></li></ul></nav><h2 id="_4-1-基础知识" tabindex="-1">4.1 基础知识 <a class="header-anchor" href="#_4-1-基础知识" aria-label="Permalink to &quot;4.1  基础知识&quot;">​</a></h2><p>下载去到下面下载</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">https://git-scm.com/downloads</span></span>
<span class="line"><span style="color:#A6ACCD;">git pull 拉取远程仓库</span></span>
<span class="line"><span style="color:#A6ACCD;">git add . 跟踪所有改动的文件</span></span>
<span class="line"><span style="color:#A6ACCD;">git commit -m &quot;&quot; 提交改动到本地仓库</span></span>
<span class="line"><span style="color:#A6ACCD;">git push 推送到远程仓库</span></span>
<span class="line"><span style="color:#A6ACCD;">git checkout &lt;branch&gt; 切换分支</span></span>
<span class="line"><span style="color:#A6ACCD;">git clone/init 初始化</span></span>
<span class="line"><span style="color:#A6ACCD;">git log 查看历史</span></span>
<span class="line"><span style="color:#A6ACCD;">git revert &lt;commit&gt; 撤销指定提交</span></span></code></pre></div><p>git中有三类文件</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">1 被追踪的（tracked）:已经加入文档库</span></span>
<span class="line"><span style="color:#A6ACCD;">2不被追踪的(untracked):没有加入文档库</span></span>
<span class="line"><span style="color:#A6ACCD;">3忽略的(ignored):忽略那些不需要管理的文件夹或文件</span></span></code></pre></div><p>安装后指定你的邮箱和用户名</p><div class="language-js"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">git config </span><span style="color:#89DDFF;">--</span><span style="color:#A6ACCD;">global user</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">email </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">3451613934@qq.com</span><span style="color:#89DDFF;">&quot;</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">//指定你的 </span></span>
<span class="line"><span style="color:#A6ACCD;">git config </span><span style="color:#89DDFF;">--</span><span style="color:#A6ACCD;">global user</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">name </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">electrolux</span><span style="color:#89DDFF;">&quot;</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">//指定你的</span></span>
<span class="line"><span style="color:#A6ACCD;">git config </span><span style="color:#89DDFF;">--</span><span style="color:#A6ACCD;">global </span><span style="color:#89DDFF;">-</span><span style="color:#A6ACCD;">l </span><span style="color:#676E95;font-style:italic;">//打印出你的config</span></span></code></pre></div><p>查看状态</p><div class="language-js"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">git config </span><span style="color:#89DDFF;">-</span><span style="color:#A6ACCD;">e </span><span style="color:#676E95;font-style:italic;">//查看当前git配置</span></span>
<span class="line"><span style="color:#A6ACCD;">git remote </span><span style="color:#89DDFF;">-</span><span style="color:#A6ACCD;">v </span><span style="color:#676E95;font-style:italic;">//查看源</span></span></code></pre></div><p>当你第一次push的时候 可能会有凭证让你输入。gitee和github的凭证各不相同</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">上传的时候如果有报错的话提示账号密码错误的话，在上传的时候有一个弹窗，那个是输入你的码云的账号密码，输错了的话打开控制面板，用户，windows凭据，普通凭据里面删除码云和GitHub的账号密码再重新git上传重新弹窗再输入就好了，新手上路被坑了</span></span></code></pre></div><h3 id="_4-1-1-删除仓库" tabindex="-1">4.1.1 删除仓库 <a class="header-anchor" href="#_4-1-1-删除仓库" aria-label="Permalink to &quot;4.1.1 删除仓库&quot;">​</a></h3><div class="language-js"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">git remote remove test </span><span style="color:#676E95;font-style:italic;">//删除其中一个仓库</span></span>
<span class="line"><span style="color:#A6ACCD;">git remote rm origin </span><span style="color:#676E95;font-style:italic;">//删除掉远程仓库</span></span></code></pre></div><h3 id="_4-1-4-版本控制" tabindex="-1">4.1.4 版本控制 <a class="header-anchor" href="#_4-1-4-版本控制" aria-label="Permalink to &quot;4.1.4 版本控制&quot;">​</a></h3><div class="language-js"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">git log </span><span style="color:#89DDFF;">--</span><span style="color:#A6ACCD;">pretty</span><span style="color:#89DDFF;">=</span><span style="color:#FFCB6B;">format</span><span style="color:#89DDFF;">:</span><span style="color:#89DDFF;">&#39;</span><span style="color:#C3E88D;">%h: %s</span><span style="color:#89DDFF;">&#39;</span><span style="color:#A6ACCD;">	</span><span style="color:#676E95;font-style:italic;">//加参。简洁查看推荐这种。感觉跟reflog差不多。但是各有各的好处</span></span>
<span class="line"><span style="color:#A6ACCD;">git reset </span><span style="color:#89DDFF;">--</span><span style="color:#A6ACCD;">hard 60a1fded33ad035cc323ca5de6e3da4ffb80c8db	</span><span style="color:#676E95;font-style:italic;">//回退版本</span></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"><span style="color:#A6ACCD;">git reflog	</span><span style="color:#676E95;font-style:italic;">//查看除了提交还有删除记录什么的</span></span>
<span class="line"><span style="color:#A6ACCD;">git reset </span><span style="color:#89DDFF;">--</span><span style="color:#A6ACCD;">hard HEAD@</span><span style="color:#89DDFF;">{</span><span style="color:#F78C6C;">0</span><span style="color:#89DDFF;">}</span><span style="color:#A6ACCD;">   </span><span style="color:#676E95;font-style:italic;">//执行这个操作就可以回退版本</span></span>
<span class="line"></span>
<span class="line"><span style="color:#A6ACCD;">git status	</span><span style="color:#676E95;font-style:italic;">//（看一下是不是有文件没提交）</span></span></code></pre></div><h3 id="_4-1-5-提交树美化" tabindex="-1">4.1.5 提交树美化 <a class="header-anchor" href="#_4-1-5-提交树美化" aria-label="Permalink to &quot;4.1.5 提交树美化&quot;">​</a></h3><p>建议在sourcetree这种地方看提交树</p><div class="language-js"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">1e8e76b2d2d8ed1fa89996b0a90eacb151422379  </span><span style="color:#F78C6C;">17</span><span style="color:#A6ACCD;">：</span><span style="color:#F78C6C;">37</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">//第一行的origin/master直接删掉就可以了</span></span>
<span class="line"><span style="color:#A6ACCD;">d14a3d1e3c5033840c78b58a5b1cae1af22e00ac </span><span style="color:#F78C6C;">17</span><span style="color:#A6ACCD;">:</span><span style="color:#F78C6C;">26</span></span>
<span class="line"><span style="color:#A6ACCD;">f52fecd7f8b665c018d6c244dd924272cfaccfbf 404图片的提交2</span></span>
<span class="line"><span style="color:#A6ACCD;">5</span><span style="color:#82AAFF;">c7d0df162896912ffcc38e6118e45b7f8b953d2</span><span style="color:#A6ACCD;"> (tag: </span><span style="color:#F78C6C;">0.0</span><span style="color:#89DDFF;">.</span><span style="color:#F78C6C;">1</span><span style="color:#A6ACCD;">) 404的提交</span></span>
<span class="line"><span style="color:#A6ACCD;">60a1fded33ad035cc323ca5de6e3da4ffb80c8db 404图片的提交</span></span></code></pre></div><p>合并中间几个记录实操：</p><div class="language-js"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">git log  </span><span style="color:#676E95;font-style:italic;">//查看提交记录</span></span>
<span class="line"><span style="color:#676E95;font-style:italic;">//这里我们调用的是合并id的前 3    ctrl+x快速切换</span></span>
<span class="line"><span style="color:#A6ACCD;">git rebase </span><span style="color:#89DDFF;">-</span><span style="color:#A6ACCD;">i </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">60a1fded33ad035cc323ca5de6e3da4ffb80c8db</span><span style="color:#89DDFF;">&quot;</span><span style="color:#A6ACCD;">  </span></span>
<span class="line"><span style="color:#676E95;font-style:italic;">//这里我们进入了一个vim界面</span></span>
<span class="line"><span style="color:#676E95;font-style:italic;">//esc按下之后，我们  :w 表示保存退出  :wq!表示强制保存退出   :q!强制退出不保存</span></span>
<span class="line"><span style="color:#676E95;font-style:italic;">//越下面的是提交越晚的。和git log顺序相反</span></span>
<span class="line"></span>
<span class="line"><span style="color:#676E95;font-style:italic;">//我们要合并我们就要把pick 变成 s（squash）这两个东西都可以。这段的意思是把中间两个合并到 404的提交 这里面去    </span></span>
<span class="line"></span>
<span class="line"><span style="color:#A6ACCD;">pick 5c7d0df 404的提交</span></span>
<span class="line"><span style="color:#A6ACCD;">squash f52fecd 404图片的提交2</span></span>
<span class="line"><span style="color:#A6ACCD;">squash d14a3d1 </span><span style="color:#F78C6C;">17</span><span style="color:#A6ACCD;">:</span><span style="color:#F78C6C;">26</span></span>
<span class="line"><span style="color:#A6ACCD;">pick 1e8e76b </span><span style="color:#F78C6C;">17</span><span style="color:#A6ACCD;">：</span><span style="color:#F78C6C;">37</span></span>
<span class="line"></span>
<span class="line"><span style="color:#676E95;font-style:italic;">//esc +  :wq保存并退出</span></span>
<span class="line"><span style="color:#676E95;font-style:italic;">//接下来会弹出第二个页面, 分别展示三个commit的提交信息，我们要选中一个提交信息</span></span>
<span class="line"><span style="color:#676E95;font-style:italic;">//按d 删除   我第一次不小心 没有commit信息 </span></span>
<span class="line"><span style="color:#676E95;font-style:italic;">//git rebase --abort恢复</span></span>
<span class="line"></span>
<span class="line"><span style="color:#676E95;font-style:italic;">//d(drop那里)。或许这种方法更加痛快    s（squash）这个玩意就不用了</span></span></code></pre></div><h3 id="_4-1-6-合并代码" tabindex="-1">4.1.6 合并代码 <a class="header-anchor" href="#_4-1-6-合并代码" aria-label="Permalink to &quot;4.1.6 合并代码&quot;">​</a></h3><p>merge 合并别人的</p><div class="language-js"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">git checkout master </span><span style="color:#676E95;font-style:italic;">//切换分支</span></span>
<span class="line"><span style="color:#A6ACCD;">git merge main</span></span></code></pre></div><h3 id="_4-1-7-标签管理" tabindex="-1">4.1.7 标签管理 <a class="header-anchor" href="#_4-1-7-标签管理" aria-label="Permalink to &quot;4.1.7 标签管理&quot;">​</a></h3><div class="language-js"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">git tag v1</span><span style="color:#89DDFF;">.</span><span style="color:#F78C6C;">0</span><span style="color:#A6ACCD;">	</span><span style="color:#676E95;font-style:italic;">//打标签</span></span>
<span class="line"><span style="color:#A6ACCD;">git tag </span><span style="color:#89DDFF;">-</span><span style="color:#A6ACCD;">a v0</span><span style="color:#89DDFF;">.</span><span style="color:#F78C6C;">1</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">-</span><span style="color:#A6ACCD;">m </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">version 0.1 released</span><span style="color:#89DDFF;">&quot;</span><span style="color:#A6ACCD;"> 1094adb </span><span style="color:#676E95;font-style:italic;">//指定标签名和说明文字和commit id</span></span>
<span class="line"><span style="color:#A6ACCD;">git tag	</span><span style="color:#676E95;font-style:italic;">//查看所有标签</span></span>
<span class="line"><span style="color:#676E95;font-style:italic;">//若是忘记打，则查找历史提交commit id ，再打上</span></span>
<span class="line"><span style="color:#A6ACCD;">git log </span><span style="color:#89DDFF;">--</span><span style="color:#A6ACCD;">pretty</span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;">oneline </span><span style="color:#89DDFF;">--</span><span style="color:#A6ACCD;">abbrev</span><span style="color:#89DDFF;">-</span><span style="color:#A6ACCD;">commit</span></span>
<span class="line"><span style="color:#A6ACCD;">git tag v0</span><span style="color:#89DDFF;">.</span><span style="color:#F78C6C;">9</span><span style="color:#A6ACCD;"> f52c633</span></span>
<span class="line"><span style="color:#A6ACCD;">git show v0</span><span style="color:#89DDFF;">.</span><span style="color:#F78C6C;">9</span><span style="color:#A6ACCD;">		</span><span style="color:#676E95;font-style:italic;">//查看标签详细信息</span></span>
<span class="line"><span style="color:#A6ACCD;">git tag </span><span style="color:#89DDFF;">-</span><span style="color:#A6ACCD;">d v0</span><span style="color:#89DDFF;">.</span><span style="color:#F78C6C;">1</span><span style="color:#A6ACCD;">	</span><span style="color:#676E95;font-style:italic;">//删除标签</span></span>
<span class="line"><span style="color:#A6ACCD;">git push origin v1</span><span style="color:#89DDFF;">.</span><span style="color:#F78C6C;">0</span><span style="color:#A6ACCD;">	</span><span style="color:#676E95;font-style:italic;">//推送标签到远程</span></span>
<span class="line"><span style="color:#A6ACCD;">git push origin –tags	</span><span style="color:#676E95;font-style:italic;">//一次性推送全部本地标签</span></span>
<span class="line"><span style="color:#676E95;font-style:italic;">//删除标签，（若已推送到远程，先从本地删除，从远程删除）</span></span>
<span class="line"><span style="color:#A6ACCD;">git tag </span><span style="color:#89DDFF;">-</span><span style="color:#A6ACCD;">d v0</span><span style="color:#89DDFF;">.</span><span style="color:#F78C6C;">9</span></span>
<span class="line"><span style="color:#A6ACCD;">git push </span><span style="color:#FFCB6B;">origin</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;">refs</span><span style="color:#89DDFF;">/</span><span style="color:#A6ACCD;">tags</span><span style="color:#89DDFF;">/</span><span style="color:#A6ACCD;">v0</span><span style="color:#89DDFF;">.</span><span style="color:#F78C6C;">9</span></span>
<span class="line"><span style="color:#676E95;font-style:italic;">//打标签如下  v0.9 后面是commit id</span></span>
<span class="line"><span style="color:#A6ACCD;">git tag </span><span style="color:#89DDFF;">-</span><span style="color:#A6ACCD;">d v0</span><span style="color:#89DDFF;">.</span><span style="color:#F78C6C;">9</span></span>
<span class="line"><span style="color:#A6ACCD;">git tag v0</span><span style="color:#89DDFF;">.</span><span style="color:#F78C6C;">9</span><span style="color:#A6ACCD;"> f52c633</span></span></code></pre></div><div class="language-js"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#676E95;font-style:italic;">//实操</span></span>
<span class="line"><span style="color:#A6ACCD;">git add </span><span style="color:#89DDFF;">.</span></span>
<span class="line"><span style="color:#A6ACCD;">git commit </span><span style="color:#89DDFF;">-</span><span style="color:#A6ACCD;">m </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">tag标签</span><span style="color:#89DDFF;">&quot;</span></span>
<span class="line"><span style="color:#A6ACCD;">git tag </span><span style="color:#89DDFF;">-</span><span style="color:#A6ACCD;">d </span><span style="color:#F78C6C;">0.0</span><span style="color:#89DDFF;">.</span><span style="color:#F78C6C;">2</span></span>
<span class="line"><span style="color:#A6ACCD;">git tag </span><span style="color:#89DDFF;">-</span><span style="color:#A6ACCD;">a </span><span style="color:#F78C6C;">0.0</span><span style="color:#89DDFF;">.</span><span style="color:#F78C6C;">2</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">-</span><span style="color:#A6ACCD;">m </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">提交</span><span style="color:#89DDFF;">&quot;</span></span>
<span class="line"><span style="color:#A6ACCD;">git tag	</span><span style="color:#676E95;font-style:italic;">//查看所有标签 </span></span>
<span class="line"><span style="color:#A6ACCD;">git show </span><span style="color:#F78C6C;">0.0</span><span style="color:#89DDFF;">.</span><span style="color:#F78C6C;">2</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;">//查看一下状态</span></span>
<span class="line"><span style="color:#A6ACCD;">git push origin </span><span style="color:#F78C6C;">0.0</span><span style="color:#89DDFF;">.</span><span style="color:#F78C6C;">2</span></span></code></pre></div><h3 id="_4-1-8-合并冲突" tabindex="-1">4.1.8 合并冲突 <a class="header-anchor" href="#_4-1-8-合并冲突" aria-label="Permalink to &quot;4.1.8 合并冲突&quot;">​</a></h3><div class="language-js"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">git pull 和 git fetch </span><span style="color:#89DDFF;">+</span><span style="color:#A6ACCD;"> git merge 但是git fetch可以看到更新情况，也就更安全</span></span></code></pre></div><p>在我们直接下载并且进行提交的时候，有时候啊会报错</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">fatal: refusing to merge unrelated histories解决</span></span></code></pre></div><p>这个时候我们应该</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">git pull origin master --allow-unrelated-histories</span></span></code></pre></div><p>然后冲突我们可以在冲突编辑区下面进行修改</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">左边是一开始的，右边是已经更改的</span></span>
<span class="line"><span style="color:#A6ACCD;">下面是最终提交的</span></span></code></pre></div><h3 id="_4-1-9-github-提-issue" tabindex="-1">4.1.9 github 提 issue <a class="header-anchor" href="#_4-1-9-github-提-issue" aria-label="Permalink to &quot;4.1.9 github 提 issue&quot;">​</a></h3><p>首先 fork 一下，然后 git clone fork 的 仓库。然后 切换分支 提交 分支到自己的地方 。就可以去他的项目提 pr了</p><h3 id="_4-1-10-cherry-pick" tabindex="-1">4.1.10 cherry-pick <a class="header-anchor" href="#_4-1-10-cherry-pick" aria-label="Permalink to &quot;4.1.10 cherry-pick&quot;">​</a></h3><p>把指定的<a href="https://so.csdn.net/so/search?q=commit&amp;spm=1001.2101.3001.7020" target="_blank" rel="noreferrer">commit</a>，拉到一个当前的分支上。</p><div class="language-js"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">git cherry</span><span style="color:#89DDFF;">-</span><span style="color:#A6ACCD;">pick commitID</span></span></code></pre></div><h2 id="_4-2-git-hook-husky" tabindex="-1">4.2 git hook | husky <a class="header-anchor" href="#_4-2-git-hook-husky" aria-label="Permalink to &quot;4.2 git hook | husky&quot;">​</a></h2><div class="language-js"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">githook是原理是</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">git文件夹里面有hooks里面有很多hook，我们只需要写bash脚本，特定的时间就会做特定的事情</span></span>
<span class="line"><span style="color:#A6ACCD;">husty会自定义目录执行特定时间脚本（主要是precommit)</span></span>
<span class="line"></span>
<span class="line"><span style="color:#A6ACCD;">为了代码的规范有必要进行 log 规范化检查。而检查的入口可以从 git hook 切入，而 git hook </span></span>
<span class="line"></span>
<span class="line"><span style="color:#A6ACCD;">钩子都被存储在 Git 目录下的 hooks 子目录中。 也即绝大部分项目中的 </span><span style="color:#89DDFF;">`</span><span style="color:#C3E88D;">.git/hooks</span><span style="color:#89DDFF;">`</span><span style="color:#A6ACCD;">，默认存在的都是示例，其名字都是以 </span><span style="color:#89DDFF;">`</span><span style="color:#C3E88D;">.sample</span><span style="color:#89DDFF;">`</span><span style="color:#A6ACCD;"> 结尾，如果你想启用它们，得先移除这个后缀。把一个正确命名且可执行的文件放入 Git 目录下的 hooks 子目录中，即可激活该钩子脚本。 这样一来，它就能被 Git 调用。</span></span>
<span class="line"></span>
<span class="line"><span style="color:#A6ACCD;">你可以用来检查消息、检查代码，可以用来触发任意流程，譬如自动规范检查等等</span></span></code></pre></div><div class="language-ts"><button title="Copy Code" class="copy"></button><span class="lang">ts</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">有两种类型的hook</span></span>
<span class="line"></span>
<span class="line"><span style="color:#A6ACCD;">一种是服务端的hook，  receive之类的</span></span>
<span class="line"><span style="color:#A6ACCD;">一种是客户端的hook。precommiit之类的</span></span>
<span class="line"></span>
<span class="line"><span style="color:#A6ACCD;">有几种钩子的情况</span></span>
<span class="line"><span style="color:#82AAFF;">msg</span><span style="color:#A6ACCD;">(应用程序消息)</span></span>
<span class="line"><span style="color:#82AAFF;">pre</span><span style="color:#A6ACCD;">(应用前批处理)</span></span>
<span class="line"><span style="color:#82AAFF;">post</span><span style="color:#A6ACCD;">(应用程序批处理后)</span></span>
<span class="line"></span>
<span class="line"><span style="color:#A6ACCD;">hook，这其实是计算机领域中一个很常见的概念，hook 翻译过来的意思是钩子或者勾住，</span><span style="color:#FFCB6B;">而在计算机领域中则要分为两种解释</span><span style="color:#89DDFF;">:</span></span>
<span class="line"></span>
<span class="line"><span style="color:#A6ACCD;">拦截消息，在消息到达目标前，提前对消息进行处理</span></span>
<span class="line"><span style="color:#A6ACCD;">对特定的事件进行监听，当某个事件或动作被触发时也会同时触发对应的 hook</span></span>
<span class="line"><span style="color:#A6ACCD;">也就是说 hook 本身也是一段程序，只是它会在特定的时机被触发。</span></span>
<span class="line"></span>
<span class="line"><span style="color:#A6ACCD;">在提交的规范中我们一般有以下的规范</span></span>
<span class="line"><span style="color:#A6ACCD;">feat：新功能（feature）</span></span>
<span class="line"><span style="color:#A6ACCD;">fix：修补bug</span></span>
<span class="line"><span style="color:#A6ACCD;">docs：文档（documentation）</span></span>
<span class="line"><span style="color:#A6ACCD;">style： 格式（不影响代码运行的变动）</span></span>
<span class="line"><span style="color:#A6ACCD;">refactor：重构（即不是新增功能，也不是修改bug的代码变动）</span></span>
<span class="line"><span style="color:#A6ACCD;">test：增加测试</span></span>
<span class="line"><span style="color:#A6ACCD;">chore：构建过程或辅助工具的变动</span></span></code></pre></div><h3 id="_4-2-1-husky-初始化" tabindex="-1">4.2.1 husky 初始化 <a class="header-anchor" href="#_4-2-1-husky-初始化" aria-label="Permalink to &quot;4.2.1 husky 初始化&quot;">​</a></h3><p>husky的原理是在.git/config文件的[core]中添加 hooksPath = .husky就是原理了</p><p>step1:初始化</p><div class="language-js"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">命令行中</span></span>
<span class="line"><span style="color:#A6ACCD;">npm install husky@</span><span style="color:#F78C6C;">8</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">-</span><span style="color:#A6ACCD;">D</span></span>
<span class="line"><span style="color:#A6ACCD;">package</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">json中添加</span></span>
<span class="line"><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">scripts</span><span style="color:#89DDFF;">&quot;</span><span style="color:#A6ACCD;">: </span><span style="color:#89DDFF;">{</span><span style="color:#A6ACCD;">	</span></span>
<span class="line"><span style="color:#A6ACCD;">    </span><span style="color:#89DDFF;">&quot;</span><span style="color:#F07178;">prepare</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">husky install</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">,</span></span>
<span class="line"><span style="color:#89DDFF;">},</span></span></code></pre></div><p>npm run prepare，构建一般目录 ~的这个目录直接删掉就好了</p><h3 id="_4-2-2-添加钩子" tabindex="-1">4.2.2 添加钩子 <a class="header-anchor" href="#_4-2-2-添加钩子" aria-label="Permalink to &quot;4.2.2  添加钩子&quot;">​</a></h3><p>我们还可以在husky文件夹下面新建precommit，我们写入</p><div class="language-sh"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#676E95;font-style:italic;">#!/usr/bin/env sh</span></span>
<span class="line"><span style="color:#82AAFF;">.</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&quot;$(</span><span style="color:#FFCB6B;">dirname</span><span style="color:#C3E88D;"> -- </span><span style="color:#89DDFF;">&quot;</span><span style="color:#A6ACCD;font-style:italic;">$0</span><span style="color:#89DDFF;">&quot;)</span><span style="color:#C3E88D;">/_/husky.sh</span><span style="color:#89DDFF;">&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#FFCB6B;">npm</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">run</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">lint</span></span>
<span class="line"><span style="color:#FFCB6B;">是一样的效果</span></span></code></pre></div><p>校验名字-这玩意我写的贼牛皮-.husk//commit-msg</p><div class="language-python"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#676E95;font-style:italic;">#!/usr/bin/env python</span></span>
<span class="line"><span style="color:#676E95;font-style:italic;"># coding=utf-8</span></span>
<span class="line"><span style="color:#676E95;font-style:italic;">#</span></span>
<span class="line"><span style="color:#676E95;font-style:italic;"># commit msg check</span></span>
<span class="line"><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> sys</span></span>
<span class="line"><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> re</span></span>
<span class="line"><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> io</span></span>
<span class="line"><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> os</span></span>
<span class="line"><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">hasattr</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">sys</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">stdout</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">&#39;</span><span style="color:#C3E88D;">buffer</span><span style="color:#89DDFF;">&#39;</span><span style="color:#89DDFF;">):</span></span>
<span class="line"><span style="color:#A6ACCD;">    sys</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">stdout</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> io</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">TextIOWrapper</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">sys</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">stdout</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">buffer</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">encoding</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">&#39;</span><span style="color:#C3E88D;">utf-8</span><span style="color:#89DDFF;">&#39;</span><span style="color:#89DDFF;">)</span></span>
<span class="line"></span>
<span class="line"><span style="color:#A6ACCD;">TIPS_INFO </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&#39;&#39;&#39;</span></span>
<span class="line"><span style="color:#C3E88D;">不符合commit规范,提交失败!</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C3E88D;">commit规范:</span></span>
<span class="line"><span style="color:#C3E88D;">类型 详细消息-具体请看readme</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C3E88D;">规范样例：</span></span>
<span class="line"><span style="color:#C3E88D;">feat:类型是feat表示在代码库中新增了一个功能 git commit -m &quot;feat: 增加了xxx功能&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C3E88D;">！！！！提交失败！！！！</span></span>
<span class="line"><span style="color:#89DDFF;">&#39;&#39;&#39;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#C792EA;">def</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">check_commit_line1_format</span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;font-style:italic;">msg</span><span style="color:#89DDFF;">):</span></span>
<span class="line"><span style="color:#A6ACCD;">    </span><span style="color:#82AAFF;">print</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">msg</span><span style="color:#89DDFF;">)</span></span>
<span class="line"><span style="color:#A6ACCD;">    </span><span style="color:#676E95;font-style:italic;"># regOther = r&#39;\S{5,} (.){10,100}&#39; ^fix:|^feat: ((修复了)|(增加了))(.){2,100}功能</span></span>
<span class="line"><span style="color:#A6ACCD;">    regOther </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">r</span><span style="color:#89DDFF;">&#39;</span><span style="color:#C3E88D;">^fix</span><span style="color:#89DDFF;">|</span><span style="color:#C3E88D;">^feat</span><span style="color:#89DDFF;">|</span><span style="color:#C3E88D;">^docs</span><span style="color:#89DDFF;">|</span><span style="color:#C3E88D;">^style</span><span style="color:#89DDFF;">|</span><span style="color:#C3E88D;">^refactor</span><span style="color:#89DDFF;">|</span><span style="color:#C3E88D;">^test</span><span style="color:#89DDFF;">|</span><span style="color:#C3E88D;">^chore </span><span style="color:#89DDFF;">(</span><span style="color:#C3E88D;">.</span><span style="color:#89DDFF;">){1,100}&#39;</span></span>
<span class="line"><span style="color:#A6ACCD;">    matchObj </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> re</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">match</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">regOther</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> msg</span><span style="color:#89DDFF;">)</span></span>
<span class="line"><span style="color:#A6ACCD;">    </span><span style="color:#89DDFF;font-style:italic;">return</span><span style="color:#A6ACCD;"> matchObj</span></span>
<span class="line"></span>
<span class="line"><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> __name__</span><span style="color:#89DDFF;">==</span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">__main__</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">:</span></span>
<span class="line"><span style="color:#A6ACCD;">    </span><span style="color:#676E95;font-style:italic;"># print(&quot;进行lint扫描&quot;)</span></span>
<span class="line"><span style="color:#A6ACCD;">    </span><span style="color:#676E95;font-style:italic;"># os.system(&quot;npm run lint&quot;)</span></span>
<span class="line"><span style="color:#A6ACCD;">    </span><span style="color:#676E95;font-style:italic;"># print(&quot;进行audit扫描&quot;)</span></span>
<span class="line"><span style="color:#A6ACCD;">    </span><span style="color:#676E95;font-style:italic;"># os.system(&quot;npm audit&quot;)</span></span>
<span class="line"><span style="color:#A6ACCD;">    </span><span style="color:#82AAFF;">print</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">--------husky校验中--------</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">)</span></span>
<span class="line"><span style="color:#A6ACCD;">    </span><span style="color:#676E95;font-style:italic;"># print(sys)</span></span>
<span class="line"><span style="color:#A6ACCD;">    </span><span style="color:#89DDFF;font-style:italic;">with</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">open</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">sys</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">argv</span><span style="color:#89DDFF;">[</span><span style="color:#F78C6C;">1</span><span style="color:#89DDFF;">],</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">&#39;</span><span style="color:#C3E88D;">r</span><span style="color:#89DDFF;">&#39;</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;font-style:italic;">encoding</span><span style="color:#89DDFF;">=</span><span style="color:#89DDFF;">&quot;</span><span style="color:#C3E88D;">utf-8</span><span style="color:#89DDFF;">&quot;</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">as</span><span style="color:#A6ACCD;"> f</span><span style="color:#89DDFF;">:</span></span>
<span class="line"><span style="color:#A6ACCD;">        </span><span style="color:#89DDFF;font-style:italic;">for</span><span style="color:#A6ACCD;"> line </span><span style="color:#89DDFF;font-style:italic;">in</span><span style="color:#A6ACCD;"> f</span><span style="color:#89DDFF;">:</span></span>
<span class="line"><span style="color:#A6ACCD;">            </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">check_commit_line1_format</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">line</span><span style="color:#89DDFF;">)):</span></span>
<span class="line"><span style="color:#A6ACCD;">                sys</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">exit</span><span style="color:#89DDFF;">(</span><span style="color:#F78C6C;">0</span><span style="color:#89DDFF;">)</span></span>
<span class="line"><span style="color:#A6ACCD;">            </span><span style="color:#89DDFF;font-style:italic;">else</span><span style="color:#89DDFF;">:</span></span>
<span class="line"><span style="color:#A6ACCD;">                </span><span style="color:#82AAFF;">print</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">TIPS_INFO</span><span style="color:#89DDFF;">)</span></span>
<span class="line"><span style="color:#A6ACCD;">                sys</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">exit</span><span style="color:#89DDFF;">(</span><span style="color:#F78C6C;">1</span><span style="color:#89DDFF;">)</span></span></code></pre></div><h2 id="_4-9-项目常用" tabindex="-1">4.9 项目常用 <a class="header-anchor" href="#_4-9-项目常用" aria-label="Permalink to &quot;4.9 项目常用&quot;">​</a></h2><h3 id="_4-9-1-当开发的时候主分支有新东西要合并进来" tabindex="-1">4.9.1 当开发的时候主分支有新东西要合并进来 <a class="header-anchor" href="#_4-9-1-当开发的时候主分支有新东西要合并进来" aria-label="Permalink to &quot;4.9.1  当开发的时候主分支有新东西要合并进来&quot;">​</a></h3><p>我当前开发的分支再zp_dev,leader的主分支在dev。主分支有新东西要合并进来</p><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">git</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">pull</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">origin</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">dev</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">有问题</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">显示</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">Please</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">commit</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">your</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">changes</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">or</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">stash</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">them</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">before</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">you</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">merge.然后</span></span>
<span class="line"></span>
<span class="line"><span style="color:#FFCB6B;">git</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">stash</span><span style="color:#A6ACCD;"> </span></span>
<span class="line"><span style="color:#FFCB6B;">git</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">checkout</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">dev</span></span>
<span class="line"><span style="color:#FFCB6B;">git</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">pull</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">origin</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">dev</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;"># 拉到现在的dev分支</span></span>
<span class="line"><span style="color:#FFCB6B;">git</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">checkout</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">zp_dev</span></span>
<span class="line"><span style="color:#FFCB6B;">git</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">stash</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">pop</span></span>
<span class="line"><span style="color:#FFCB6B;">git</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">stash</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;"># 安全</span></span>
<span class="line"><span style="color:#FFCB6B;">git</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">rebase</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">dev</span><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;"># 接着本地解决冲突，accept 更改，拉取共有的东西</span></span></code></pre></div><h3 id="_4-9-2-dev-没有-pull-到最新-然后进行开发" tabindex="-1">4.9.2 dev 没有 pull 到最新 然后进行开发 <a class="header-anchor" href="#_4-9-2-dev-没有-pull-到最新-然后进行开发" aria-label="Permalink to &quot;4.9.2 dev 没有 pull  到最新 然后进行开发&quot;">​</a></h3><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#676E95;font-style:italic;"># 本地的有冲突</span></span>
<span class="line"><span style="color:#FFCB6B;">git</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">checkout</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">dev</span></span>
<span class="line"><span style="color:#FFCB6B;">git</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">branch</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-d</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">dev</span><span style="color:#A6ACCD;"> </span></span>
<span class="line"><span style="color:#FFCB6B;">git</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">pull</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">origin</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">dev</span><span style="color:#A6ACCD;">   </span></span>
<span class="line"><span style="color:#FFCB6B;">git</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">reset</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">xx</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">或者</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">git</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">checkout</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">zp_dev</span></span>
<span class="line"><span style="color:#FFCB6B;">git</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">rebase</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">dev</span><span style="color:#A6ACCD;">  </span><span style="color:#676E95;font-style:italic;"># 解决冲突 此时 Git 会将 zp_dev 分支下最新提交的代码提取出来，将 dev 分支最新的代码应用到这个提交上，然后将结果提交到 zp_dev 分支上。如果有冲突需要解决，解决冲突后再使用 git add 命令添加修改，使用 git rebase --continue 命令继续执行合并操作。如果合并过程中发生问题导致代码出现错误，可以使用 git rebase --abort 命令撤销合并操作，并恢复到合并前的状态。</span></span>
<span class="line"></span>
<span class="line"><span style="color:#676E95;font-style:italic;"># 5.当合并完成后，将合并结果推送到远程仓库：</span></span>
<span class="line"></span>
<span class="line"><span style="color:#FFCB6B;">git</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">push</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">origin</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">zp_dev</span></span></code></pre></div><h2 id="_4-10-设置github-的-代理" tabindex="-1">4.10 设置github 的 代理 <a class="header-anchor" href="#_4-10-设置github-的-代理" aria-label="Permalink to &quot;4.10 设置github 的 代理&quot;">​</a></h2><h3 id="http" tabindex="-1">http <a class="header-anchor" href="#http" aria-label="Permalink to &quot;http&quot;">​</a></h3><p>v2ray 找到可以用的节点。然后 设置 =》 参数设置，然后</p><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">git</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">config</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--global</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">http.https://github.com.proxy</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">socks5://127.0.0.1:10808</span></span>
<span class="line"></span>
<span class="line"><span style="color:#676E95;font-style:italic;"># 取消 代理</span></span>
<span class="line"><span style="color:#FFCB6B;">git</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">config</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--global</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--unset</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">http.proxy</span></span>
<span class="line"><span style="color:#FFCB6B;">git</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">config</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--global</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--unset</span><span style="color:#A6ACCD;">    </span><span style="color:#C3E88D;">http.https://github.com.proxy</span></span></code></pre></div><h3 id="设置ssh代理-终极解决方案" tabindex="-1">设置ssh代理（终极解决方案） <a class="header-anchor" href="#设置ssh代理-终极解决方案" aria-label="Permalink to &quot;设置ssh代理（终极解决方案）&quot;">​</a></h3><p>https代理存在一个局限，那就是没有办法做身份验证，每次拉取私库或者推送代码时，都需要输入github的账号和密码，非常痛苦。 设置ssh代理前，请确保你已经设置ssh key。可以参考<a href="https://link.zhihu.com/?target=https%3A//tjfish.github.io/posts/%E5%9C%A8github%E4%B8%8A%E6%B7%BB%E5%8A%A0SSH-key/" target="_blank" rel="noreferrer">在 github 上添加 SSH key</a> 完成设置 更进一步是设置ssh代理。只需要配置一个config就可以了。</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#676E95;font-style:italic;"># Linux、MacOS</span></span>
<span class="line"><span style="color:#FFCB6B;">vi</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">~/.ssh/config</span></span>
<span class="line"><span style="color:#676E95;font-style:italic;"># Windows </span></span>
<span class="line"><span style="color:#FFCB6B;">到C:\Users\your_user_name\.ssh目录下，新建一个config文件（无后缀名）</span></span></code></pre></div><p>将下面内容加到config文件中即可</p><p>对于windows用户，代理会用到connect.exe，你如果安装了Git都会自带connect.exe，如我的路径为C:\APP\Git\mingw64\bin\connect</p><div class="language-text"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">#Windows用户，注意替换你的端口号和connect.exe的路径</span></span>
<span class="line"><span style="color:#A6ACCD;">ProxyCommand &quot;C:\APP\Git\mingw64\bin\connect&quot; -S 127.0.0.1:51837 -a none %h %p</span></span>
<span class="line"><span style="color:#A6ACCD;"></span></span>
<span class="line"><span style="color:#A6ACCD;">#MacOS用户用下方这条命令，注意替换你的端口号</span></span>
<span class="line"><span style="color:#A6ACCD;">#ProxyCommand nc -v -x 127.0.0.1:51837 %h %p</span></span>
<span class="line"><span style="color:#A6ACCD;"></span></span>
<span class="line"><span style="color:#A6ACCD;">Host github.com</span></span>
<span class="line"><span style="color:#A6ACCD;">  User git</span></span>
<span class="line"><span style="color:#A6ACCD;">  Port 22</span></span>
<span class="line"><span style="color:#A6ACCD;">  Hostname github.com</span></span>
<span class="line"><span style="color:#A6ACCD;">  # 注意修改路径为你的路径</span></span>
<span class="line"><span style="color:#A6ACCD;">  IdentityFile &quot;C:\Users\Your_User_Name\.ssh\id_rsa&quot;</span></span>
<span class="line"><span style="color:#A6ACCD;">  TCPKeepAlive yes</span></span>
<span class="line"><span style="color:#A6ACCD;"></span></span>
<span class="line"><span style="color:#A6ACCD;">Host ssh.github.com</span></span>
<span class="line"><span style="color:#A6ACCD;">  User git</span></span>
<span class="line"><span style="color:#A6ACCD;">  Port 443</span></span>
<span class="line"><span style="color:#A6ACCD;">  Hostname ssh.github.com</span></span>
<span class="line"><span style="color:#A6ACCD;">  # 注意修改路径为你的路径</span></span>
<span class="line"><span style="color:#A6ACCD;">  IdentityFile &quot;C:\Users\Your_User_Name\.ssh\id_rsa&quot;</span></span>
<span class="line"><span style="color:#A6ACCD;">  TCPKeepAlive yes</span></span></code></pre></div><p>保存后文件后测试方法如下，返回successful之类的就成功了。</p><div class="language-text"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;"># 测试是否设置成功</span></span>
<span class="line"><span style="color:#A6ACCD;">ssh -T git@github.com</span></span></code></pre></div><h2 id="常见bug" tabindex="-1">常见bug <a class="header-anchor" href="#常见bug" aria-label="Permalink to &quot;常见bug&quot;">​</a></h2><h3 id="error-remote-origin-already-exists" tabindex="-1">error: remote origin already exists <a class="header-anchor" href="#error-remote-origin-already-exists" aria-label="Permalink to &quot;error: remote origin already exists&quot;">​</a></h3><div class="language-js"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">--</span><span style="color:#A6ACCD;">1</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">如果你clone下来一个别人的仓库，在此基础上完成你的代码，推送到自己的仓库可能遇到这问题。</span><span style="color:#FFCB6B;">error</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> remote origin already exists</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">表示远程仓库已存在。</span></span>
<span class="line"><span style="color:#A6ACCD;">因此你要进行以下操作：</span></span>
<span class="line"><span style="color:#89DDFF;">--</span><span style="color:#F78C6C;">1.1</span><span style="color:#A6ACCD;">、先输入git remote rm origin 删除关联的origin的远程库</span></span>
<span class="line"><span style="color:#89DDFF;">--</span><span style="color:#F78C6C;">1.2</span><span style="color:#A6ACCD;">、关联自己的仓库 git remote add origin </span><span style="color:#FFCB6B;">https</span><span style="color:#89DDFF;">:</span><span style="color:#676E95;font-style:italic;">//gitee.com/xxxxxx.git</span></span>
<span class="line"><span style="color:#89DDFF;">--</span><span style="color:#F78C6C;">1.3</span><span style="color:#A6ACCD;">、最后git push origin master，这样就推送到自己的仓库了。</span></span>
<span class="line"></span>
<span class="line"><span style="color:#89DDFF;">--</span><span style="color:#A6ACCD;">2</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">git克隆下来只有master分支 看不见 也无法切换 其他分支</span></span>
<span class="line"><span style="color:#A6ACCD;">git branch </span><span style="color:#89DDFF;">-</span><span style="color:#A6ACCD;">a</span></span>
<span class="line"><span style="color:#A6ACCD;">git checkout </span><span style="color:#89DDFF;">-</span><span style="color:#A6ACCD;">t origin</span><span style="color:#89DDFF;">/</span><span style="color:#A6ACCD;">website_shibo_1</span><span style="color:#89DDFF;">.</span><span style="color:#F78C6C;">0.0</span><span style="color:#A6ACCD;"> 就可以了</span></span></code></pre></div><h2 id="规范" tabindex="-1">规范 <a class="header-anchor" href="#规范" aria-label="Permalink to &quot;规范&quot;">​</a></h2><p>目前行业最为广泛规范是 Conventional Commits[1] 很多项目包括 Auglar 也在使用。</p><p>可以根据以上规范制定适合自己团队的规范，例如：</p><p>JIRA-1234 feat: support for async execution</p><p>^-------^ ^--^: ^-------------------------^ | | | | | +--&gt; Summary in present tense. | | | +--&gt; Type: feat, fix, docs, style, refactor, perf, test or chore. | +--&gt; Jira ticket number</p><p>Type 类型必须是下面之一，并且为小写:</p><pre><code>feat: 修改/增加新功能
fix: 修改bug的变更
docs: 文档相关变更
style: 不影响代码含义的变更(空白、格式、缺少符号等)
refactor: 代码重构变更
perf: 改进性能的变更
test: 添加/修改现有的测试
chore: Build, .gitignore或辅助工具、库(如文档生成)等变更
</code></pre></div></div></main><footer class="VPDocFooter" data-v-c4b0d3cf data-v-face870a><!--[--><!--]--><div class="edit-info" data-v-face870a><!----><div class="last-updated" data-v-face870a><p class="VPLastUpdated" data-v-face870a data-v-7b3ebfe1>Last updated: <time datetime="2023-10-18T00:57:34.000Z" data-v-7b3ebfe1></time></p></div></div><div class="prev-next" data-v-face870a><div class="pager" data-v-face870a><a class="pager-link prev" href="/front-base-know-blog/supper/%E5%B7%A5%E5%85%B7%E5%9F%BA%E7%A1%80/3github%E5%9B%BE%E5%BA%8A" data-v-face870a><span class="desc" data-v-face870a>Previous page</span><span class="title" data-v-face870a>github图床</span></a></div><div class="has-prev pager" data-v-face870a><a class="pager-link next" href="/front-base-know-blog/supper/%E5%B7%A5%E5%85%B7%E5%9F%BA%E7%A1%80/5ps%E5%88%87%E5%9B%BE" data-v-face870a><span class="desc" data-v-face870a>Next page</span><span class="title" data-v-face870a>ps切图</span></a></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-f0b011de data-v-2f86ebd2><div class="container" data-v-2f86ebd2><p class="message" data-v-2f86ebd2>MIT License.</p><p class="copyright" data-v-2f86ebd2>Copyright © 2023～present Electrolux</p></div></footer><!--[--><!--]--></div></div>
    <script>__VP_HASH_MAP__ = JSON.parse("{\"index.md\":\"95f8ca9d\",\"java_base.md\":\"edc53698\",\"guide_quick start.md\":\"51bdad5b\",\"java_java.md\":\"07f7958b\",\"know_know_11.web3.md\":\"930011fd\",\"supper_工具基础_16.代码高亮.md\":\"775a71ba\",\"supper_工具基础_6codepen.md\":\"46f8bbbd\",\"supper_工具基础_5ps切图.md\":\"dc662c1f\",\"supper_前端库_1vueify.md\":\"04b61666\",\"supper_工程化_7性能优化和调试.md\":\"981a8dd6\",\"know_know_8adb.md\":\"ccc6c2e0\",\"supper_工具基础_1sourcetree的使用.md\":\"d71319d4\",\"know_know_10.项目具体代码优化.md\":\"f55add09\",\"supper_工程化_4docker 部署实操.md\":\"2e571e48\",\"know_know_1html.md\":\"19aaf16a\",\"supper_工具基础_8graphql.md\":\"198ddc72\",\"supper_工程化_6gitee流水线.md\":\"93a4c7ff\",\"know_know_5javascript-es6.md\":\"4c2cf8f7\",\"know_框架_16.echart.md\":\"0ada5f86\",\"know_know_3javascript基础.md\":\"900d378b\",\"know_优化_3算法.md\":\"8f5141e6\",\"know_框架_14webgl基础.md\":\"00a11e3e\",\"python_flask.md\":\"c8a0482c\",\"supper_功能_9监控停留时间.md\":\"2df00eaf\",\"know_框架_7python.md\":\"7d7eed5d\",\"supper_工程化_1工程化基础.md\":\"d48b3bbc\",\"know_优化_9wasm.md\":\"8d5d5bf6\",\"supper_工具基础_3github图床.md\":\"7073aa94\",\"supper_功能_8前端上传下载.md\":\"99e30d2a\",\"know_框架_13electron.md\":\"d3e93be3\",\"supper_前端库_3js-cookie.md\":\"91624dd6\",\"supper_工具基础_9快速mock.md\":\"215a0e2b\",\"know_know_4javascript代码输出题.md\":\"7348a30a\",\"python_base.md\":\"7acd6bad\",\"supper_功能_5微信支付.md\":\"d09d8b08\",\"know_框架_12threejs.md\":\"b6fbcf93\",\"know_框架_7tensorflow.md\":\"2ccc8062\",\"supper_工具基础_7icon实操.md\":\"f1512b60\",\"supper_工具基础_2用gitee连接ssh_linux服务器.md\":\"1bc61e8d\",\"supper_3d数字孪生_3ar的使用.md\":\"5db75881\",\"python_flask_开始.md\":\"54460465\",\"know_know_12.运维.md\":\"b8bd4e62\",\"supper_工具基础_14.vscode.md\":\"f106db65\",\"know_优化_12.pwa.md\":\"8327b1db\",\"know_know_6ts.md\":\"49f90aab\",\"supper_supper_4ui设计.md\":\"53988b67\",\"supper_功能_10数据大屏自适应.md\":\"7c40b558\",\"supper_工程化_3关于一些自动化脚本.md\":\"38029566\",\"know_know_4javascript手写题.md\":\"50a7a32f\",\"supper_工具基础_13mac的使用.md\":\"56de5b9c\",\"know_know_2javascript基础.md\":\"3d42c0ee\",\"supper_功能_7深度学习实操.md\":\"f6b94234\",\"know_优化_5npm_组件库构造.md\":\"67d2b67c\",\"know_计算机基础_1计算机网络.md\":\"5d905f95\",\"supper_3d数字孪生_2three世泊大屏实操.md\":\"beb9c2f8\",\"supper_功能_11拖拽元素.md\":\"cf7bf8a0\",\"python_llm.md\":\"e97febae\",\"know_know_7css.md\":\"06a3d117\",\"supper_supper_2实用算法.md\":\"e4baf1d9\",\"supper_工具基础_4git的基本使用.md\":\"c5629b74\",\"supper_功能_12vue-element-admin.md\":\"20c09558\",\"supper_工程化_5给包打补丁.md\":\"5103e073\",\"know_框架_11逆向数据crawl.md\":\"ae5ee06c\",\"supper_功能_4ffmpeg-rmtp监控.md\":\"39152e9b\",\"project_图表绘制.md\":\"dd437537\",\"supper_工具基础_12nvm.md\":\"329d446d\",\"know_框架_8mediapipe.md\":\"23fc89f2\",\"know_优化_6webrtc.md\":\"21589281\",\"know_优化_1性能优化和安全.md\":\"270924f0\",\"supper_功能_1小功能汇总.md\":\"5663f27a\",\"know_框架_4微前端.md\":\"76663f96\",\"supper_supper_1代码优化.md\":\"6126a362\",\"know_框架_10aframe.md\":\"7daf1aa1\",\"supper_supper_3性能优化.md\":\"86672f22\",\"know_优化_11.webcomponent.md\":\"94e3cf8a\",\"supper_功能_2小功能汇总.md\":\"692f88ef\",\"know_框架_1vue.md\":\"a9100a41\",\"supper_个人封装_1个人发包模板.md\":\"6b48d3d3\",\"supper_工具基础_10脚手架.md\":\"534226fa\",\"supper_工具基础_11figma.md\":\"ffebb5c1\",\"know_框架_15threejs.md\":\"85dc8e0c\",\"supper_功能_3小功能汇总.md\":\"9765dc9a\",\"supper_功能_6v-model组件封装.md\":\"9df7d5cf\",\"supper_3d数字孪生_5threejs的性能优化.md\":\"eafc4b19\",\"know_框架_8ffmpeg.md\":\"56543d8b\",\"supper_3d数字孪生_1webgl基础.md\":\"9602a381\",\"know_框架_4three数据大屏.md\":\"9b71f7c5\",\"know_框架_3ssr.md\":\"f78ee50f\",\"supper_前端库_2anime.js.md\":\"62c0fbd1\",\"know_框架_2react.md\":\"3ef491f2\",\"know_框架_5vue3.md\":\"a9430a8a\",\"know_框架_17webpack.md\":\"d7f6f200\"}")
__VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"Electrolux_blog\",\"description\":\"hello world\",\"base\":\"/front-base-know-blog/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"outlineTitle\":\"目录\",\"i18nRouting\":true,\"logo\":\"https://cdn.jsdelivr.net/npm/electroluxasset@1.0.8/image/svg/book.svg\",\"nav\":[{\"text\":\"首页\",\"link\":\"/\"},{\"text\":\"前端基础\",\"link\":\"/know/know/1html\"},{\"text\":\"前端工程化\",\"link\":\"/supper/supper/1代码优化\"},{\"text\":\"Python\",\"link\":\"/python/flask.md\"},{\"text\":\"Java\",\"link\":\"/java/java.md\"},{\"text\":\"项目\",\"link\":\"/project/javadump分析.md\"}],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://gitee.com/Electrolux\"}],\"footer\":{\"message\":\"MIT License.\",\"copyright\":\"Copyright © 2023～present Electrolux\"},\"sidebar\":{\"/know/\":[{\"text\":\"前端基础\",\"collapsed\":false,\"items\":[{\"text\":\"html(浏览器)\",\"link\":\"/know/know/1html\"},{\"text\":\"js基础(1)\",\"link\":\"/know/know/2javascript基础\"},{\"text\":\"js基础(2)\",\"link\":\"/know/know/3javascript基础\"},{\"text\":\"js基础(3) | 手写题\",\"link\":\"/know/know/4javascript手写题\"},{\"text\":\"js基础(3) | 代码输出\",\"link\":\"/know/know/4javascript代码输出题\"},{\"text\":\"js基础(4) | es6\",\"link\":\"/know/know/5javascript-es6\"},{\"text\":\"js基础(5)\",\"link\":\"/know/know/9javascript基础\"},{\"text\":\"TypeScript\",\"link\":\"/know/know/6ts\"},{\"text\":\"CSS\",\"link\":\"/know/know/7css\"},{\"text\":\"BUG\",\"link\":\"/know/know/8bug\"}]},{\"text\":\"计算机基础\",\"collapsed\":false,\"items\":[{\"text\":\"计算机网络\",\"link\":\"/know/计算机基础/1计算机网络\"}]},{\"text\":\"框架 | 工具\",\"collapsed\":false,\"items\":[{\"text\":\"vue\",\"link\":\"/know/框架/1vue\"},{\"text\":\"react\",\"link\":\"/know/框架/2react\"},{\"text\":\"ssr\",\"link\":\"/know/框架/3ssr\"},{\"text\":\"微前端\",\"link\":\"/know/框架/4微前端\"},{\"text\":\"vue3\",\"link\":\"/know/框架/5vue3\"},{\"text\":\"nginx\",\"link\":\"/know/框架/6nginx\"},{\"text\":\"python\",\"link\":\"/know/框架/7python\"},{\"text\":\"ffmpeg\",\"link\":\"/know/框架/8ffmpeg\"},{\"text\":\"tensorFlow\",\"link\":\"/know/优化/7tensorFlow\"},{\"text\":\"mediapipe\",\"link\":\"/know/优化/8mediapipe\"},{\"text\":\"aframe\",\"link\":\"/know/框架/10aframe\"},{\"text\":\"逆向数据crawl\",\"link\":\"/know/框架/11逆向数据crawl\"},{\"text\":\"threejs\",\"link\":\"/know/框架/12threejs\"},{\"text\":\"13electron\",\"link\":\"/know/框架/13electron\"},{\"text\":\"13electron\",\"link\":\"/know/框架/17webpack\"}]},{\"text\":\"优化 | 工程\",\"collapsed\":false,\"items\":[{\"text\":\"性能优化和安全\",\"link\":\"/know/优化/1性能优化和安全\"},{\"text\":\"算法\",\"link\":\"/know/优化/3算法\"},{\"text\":\"性能优化\",\"link\":\"/know/优化/4性能优化\"},{\"text\":\"组件库构造\",\"link\":\"/know/优化/5npm,组件库构造\"},{\"text\":\"webrtc\",\"link\":\"/know/优化/6webrtc\"},{\"text\":\"wasm\",\"link\":\"/know/优化/9.wasm\"},{\"text\":\"webcomponent\",\"link\":\"/know/优化/11.webcomponent\"},{\"text\":\"pwa\",\"link\":\"/know/优化/12.pwa\"}]}],\"/java/\":[{\"text\":\"java\",\"collapsed\":false,\"items\":[{\"text\":\"jvm\",\"link\":\"/java/java\"},{\"text\":\"springboot\",\"link\":\"/java/base\"}]}],\"/python/\":[{\"text\":\"python 基础\",\"collapsed\":false,\"items\":[{\"text\":\"服务器\",\"link\":\"/python/flask\"}]}],\"/project/\":[{\"text\":\"项目文档\",\"collapsed\":false,\"items\":[{\"text\":\"java dump\",\"link\":\"/project/图表绘制\"}]}],\"/supper/\":[{\"text\":\"代码高级\",\"collapsed\":false,\"items\":[{\"text\":\"代码优化 | 设计模式\",\"link\":\"/supper/supper/1代码优化\"},{\"text\":\"设计模式与js\",\"link\":\"/supper/supper/2实用算法\"},{\"text\":\"性能优化\",\"link\":\"/supper/supper/3性能优化\"},{\"text\":\"UI设计\",\"link\":\"/supper/supper/4UI设计\"}]},{\"text\":\"工程化\",\"collapsed\":false,\"items\":[{\"text\":\"工程化基础\",\"link\":\"/supper/工程化/1工程化基础\"},{\"text\":\"webpack的配置\",\"link\":\"/supper/工程化/2webpack的配置\"},{\"text\":\"自动化脚本\",\"link\":\"/supper/工程化/3关于一些自动化脚本\"},{\"text\":\"docker 部署实操\",\"link\":\"/supper/工程化/4docker 部署实操\"},{\"text\":\"patch-package\",\"link\":\"/supper/工程化/5给包打补丁\"},{\"text\":\"gitee流水线\",\"link\":\"/supper/工程化/6gitee流水线\"}]},{\"text\":\"工具基础\",\"collapsed\":false,\"items\":[{\"text\":\"Sourcetree的使用\",\"link\":\"/supper/工具基础/1Sourcetree的使用\"},{\"text\":\"用gitee连接ssh,linux服务器\",\"link\":\"/supper/工具基础/2用gitee连接ssh,linux服务器\"},{\"text\":\"github图床\",\"link\":\"/supper/工具基础/3github图床\"},{\"text\":\"git的基本使用\",\"link\":\"/supper/工具基础/4git的基本使用\"},{\"text\":\"ps切图\",\"link\":\"/supper/工具基础/5ps切图\"},{\"text\":\"codepen\",\"link\":\"/supper/工具基础/6codepen\"},{\"text\":\"icon实操 | svg原理\",\"link\":\"/supper/工具基础/7Icon实操\"},{\"text\":\"GraphQl\",\"link\":\"/supper/工具基础/8GraphQl\"},{\"text\":\"快速mock\",\"link\":\"/supper/工具基础/9快速mock\"},{\"text\":\"脚手架\",\"link\":\"/supper/工具基础/10脚手架\"},{\"text\":\"figma\",\"link\":\"/supper/工具基础/11figma\"},{\"text\":\"nvm\",\"link\":\"/supper/工具基础/12nvm\"},{\"text\":\"苹果\",\"link\":\"/supper/工具基础/13mac的使用\"}]},{\"text\":\"个人封装\",\"collapsed\":false,\"items\":[{\"text\":\"个人封装\",\"link\":\"/supper/个人封装/1个人发包模板\"}]},{\"text\":\"前端库\",\"collapsed\":false,\"items\":[{\"text\":\"vueify\",\"link\":\"/supper/前端库/1vueify\"},{\"text\":\"anime.js\",\"link\":\"/supper/前端库/2anime.js\"},{\"text\":\"js-cookie\",\"link\":\"/supper/前端库/3js-cookie\"}]},{\"text\":\"功能\",\"collapsed\":false,\"items\":[{\"text\":\"小功能汇总1\",\"link\":\"/supper/功能/1小功能汇总\"},{\"text\":\"小功能汇总2\",\"link\":\"/supper/功能/2小功能汇总\"},{\"text\":\"小功能汇总3\",\"link\":\"/supper/功能/3小功能汇总\"},{\"text\":\"ffmpeg-rmtp监控\",\"link\":\"/supper/功能/4ffmpeg-rmtp监控\"},{\"text\":\"微信支付\",\"link\":\"/supper/功能/5微信支付\"},{\"text\":\"v-model组件封装\",\"link\":\"/supper/功能/6v-model组件封装\"},{\"text\":\"深度学习实操\",\"link\":\"/supper/功能/7深度学习实操\"},{\"text\":\"前端上传下载\",\"link\":\"/supper/功能/8前端上传下载\"},{\"text\":\"监控停留时间\",\"link\":\"/supper/功能/9监控停留时间\"},{\"text\":\"数据大屏自适应\",\"link\":\"/supper/功能/10数据大屏自适应\"},{\"text\":\"拖拽元素\",\"link\":\"/supper/功能/11拖拽元素\"},{\"text\":\"vue-element-admin\",\"link\":\"/supper/功能/12vue-element-admin\"}]}]}},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":true}")</script>
    
  </body>
</html>